class Customer {
    applyDiscount(aNumber) {
        return (this.discountRate) ? aNumber - (this.discountRate * aNumber) : aNumber;
    }
}
/********************************************************************************** */
// 这里假设折扣永远为真
// 三元表达式没办法很容易的插入断言，所以要改成 if 语句
class Customer {
    applyDiscount(aNumber) {
        // 断言内的条件应该永远为真
        // assert(this.discountRate);
        if (this.discountRate) {
            return aNumber - (this.discountRate * aNumber);
        } else {
            return aNumber;
        }
    }

    set discountRate(aNumber){
        // 这里把断言放在设值函数上更容易判断哪里出错了
        assert(null === aNumber || aNumber >= 0);
        this._discountRate = aNumber;
    }
}